package com.woniuxy.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.woniuxy.entity.PageBean;
import com.woniuxy.entity.Stu;
import com.woniuxy.mapper.MyBatisUtil;
import com.woniuxy.mapper.StuMapper;
import com.woniuxy.service.StuService;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

/**
 * @author 作者
 * @create 2025-08-13 16:40
 */
public class StuServiceImpl implements StuService {
    @Override
    public PageBean<Stu> getConditionPage(Stu stu, int pageIndex, int pageSize) {
        SqlSession sqlSession = MyBatisUtil.createSqlSession();
        StuMapper stuMapper = sqlSession.getMapper(StuMapper.class);
        int totalRecord = stuMapper.selectConditionPageCount(stu);
        List<Stu> stus = stuMapper.selectConditionPage(stu, pageIndex, pageSize);
        PageBean<Stu> pageBean=new PageBean<>();
        pageBean.setTotalRecord(totalRecord);
        pageBean.setPageSize(pageSize);
        pageBean.setPageIndex(pageIndex);
        pageBean.setBeanList(stus);
        pageBean.setTotalPage(totalRecord%pageSize==0?totalRecord/pageSize:totalRecord/pageSize+1);
        return pageBean;
    }

    @Override
    public PageBean<Stu> getConditionPagePlug(Stu stu, int pageIndex, int pageSize) {
        PageBean<Stu> pageBean=new PageBean<>();
        SqlSession sqlSession = MyBatisUtil.createSqlSession();
        StuMapper stuMapper = sqlSession.getMapper(StuMapper.class);
        PageHelper.startPage(pageIndex,pageSize);
        List<Stu> stus = stuMapper.selectConditionPagePlugin(stu);
        PageInfo<Stu> pageInfo=new PageInfo<>(stus);
        pageBean.setPageSize(pageInfo.getPageSize());
        pageBean.setPageSize(pageIndex);
        pageBean.setTotalPage(pageInfo.getPages());
        pageBean.setTotalRecord((int)pageInfo.getTotal());
        pageBean.setBeanList(stus);
        return pageBean;
    }
}
